//
//  main.m
//  03-NSStringAndNSValue
//
//  Created by dllo on 16/7/6.
//  Copyright © 2016年 yh. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // 1. 查看头文件和API 他们的初始化和构造器基本上都是在一起的
        // 2. 当拿到一个新的类 需要去查看这个类的初始化和构造器
        
        /** 初始化(init) */
        NSString *str = [[NSString alloc] init];
        /** 便利构造器(string) */
        NSString *str1 = [NSString string];
        /** 获取字符串长度(length) */
        NSUInteger length = str.length;
        /** 获取字符串中字符(character) */
//        [str characterAtIndex:0];
        /** 字符串是否相等(equal) */
        [str isEqualToString:str1];
        /** 获取子串(sub) */
//        [str substringFromIndex:2];
        /** 拼接字符串(append) */
        [str stringByAppendingString:@"dsdsddf"];
        [str stringByAppendingFormat:@"kfkdjf%@", str];
        
        NSString *pathStr = @"/users/local/bin";
        // 有返回值的需要接收一下
        pathStr = [pathStr stringByAppendingPathComponent:@"name.plist"];
        NSLog(@"%@", pathStr);
        /** 替换字符串(replace) */
//        str stringByReplacingCharactersInRange:<#(NSRange)#> withString:<#(nonnull NSString *)#>
        /** 字符串对象转化为int类型(int) */
        [str intValue];
        /** 字符串对象转化为其他数据类型, 例如double, float, BOOL等. */
        [str doubleValue];
        [str floatValue];
        [str boolValue];
        /** 字符串全部大写(uppercase) */
        [str uppercaseString];
        /** 字符串全部小写(lowercase) */
        [str lowercaseString];
        /** 字符串首字母大写(capitalized) */
        [str capitalizedString];
        /** 是否以指定字符串为前缀(prefix) */
        BOOL a = [str hasPrefix:@"sd"];
        /** 是否以指定字符串为后缀(suffix) */
        BOOL b = [str hasSuffix:@"dsd"];
        
        int age = 10;
        // NSNumber类型初始化方法
        NSNumber *num1 = [[NSNumber alloc] initWithInt:age];
        // NSNumber构造器方法
        NSNumber *num2 = [NSNumber numberWithInt:age];
        // NSNumber字面量方法
//        NSNumber *num3 = @(age);
        
        // 1. 330184198501184115 处理字符串, 取出他的出生年月, 并计算出年龄(不用具体)
        // 输出格式 1985年01月18日 年龄:31岁
        
//        NSString *idStr = @"330184198501184115";
//        NSString *yearStr = [idStr substringWithRange:NSMakeRange(6, 4)];
//        NSLog(@"%@", yearStr);
//        NSString *newYearStr = [yearStr stringByAppendingString:@"年"];
//        NSString *monthStr = [idStr substringWithRange:NSMakeRange(10, 2)];
//        NSString *newMonthStr = [monthStr stringByAppendingString:@"月"];
//        NSString *dayStr = [idStr substringWithRange:NSMakeRange(12, 2)];
//        NSString *newDayStr = [dayStr stringByAppendingString:@"日"];
//        NSString *str3 = [newYearStr stringByAppendingString:newMonthStr];
//        NSString *str4 = [str3 stringByAppendingString:newDayStr];
//        NSInteger age1 = 2016 - [[idStr substringWithRange:NSMakeRange(6, 4)] integerValue];
//        NSString *intStr = [NSString stringWithFormat:@"%ld", age1];
//        NSString *ageStr = [intStr stringByAppendingString:@"岁"];
//        NSString *finaStr = [str4 stringByAppendingString:ageStr];
//        NSLog(@"%@", finaStr);
        
        NSString *idStr = @"330184198501184115";
        NSInteger age1 = 2016 - [[idStr substringWithRange:NSMakeRange(6, 4)] integerValue];
        NSLog(@"%@年%@月%@日 年龄:%ld岁", [idStr substringWithRange:NSMakeRange(6, 4)], [idStr substringWithRange:NSMakeRange(10, 2)], [idStr substringWithRange:NSMakeRange(12, 2)], age1);
        
        
        
        
        
        
    }
    return 0;
}
